package cn.com.itg.pojo.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@Accessors(chain = true)
public class MatdocSendVO implements Serializable {

    @JsonProperty("GUID")
    private String guid;

    @JsonProperty("MENGE_T")
    private BigDecimal mengeT;

    @JsonProperty("MENGE_J")
    private BigDecimal mengeJ;

    @JsonProperty("MENGE_L")
    private BigDecimal mengeL;

    @JsonProperty("MENGE_Z")
    private BigDecimal mengeZ;

    @JsonProperty("MAKTX")
    private String maktx;

    @JsonProperty("ZMENGE")
    private BigDecimal zmenge;

    @JsonProperty("ZRITYPE")
    private String zritype;

    @JsonProperty("ZZSENMEINS1")
    private String zzsenmeins1;

    @JsonProperty("ZSENMENGE1")
    private BigDecimal zsenmenge1 = new BigDecimal(0);

    @JsonProperty("ZMATNR")
    private String zmatnr;

    @JsonProperty("UPDATEFLAG")
    private String updateflag;

    @JsonProperty("ZCONVRATE")
    private BigDecimal zconvrate = new BigDecimal(0);

    @JsonProperty("ZCONVTYPE")
    private String zconvtype;

    @JsonProperty("ZBATCHFLAG")
    private Boolean zbatchflag;

//    @JsonProperty("ZREFDOC_N")
//    private String zrefdocN;
//
//    @JsonProperty("ZREFDOC_P")
//    private String zrefdocP;

    @JsonProperty("ZREFDOC")
    private String zrefdoc;

    @JsonProperty("ZREFDOC1")
    private String zrefdoc1;

    @JsonProperty("ZMBLNR")
    private String zmblnr;

    @JsonProperty("ZREFFLAG")
    private String zrefflag;

    @JsonProperty("ZZFIELD1")
    private String zzfield1;

    @JsonProperty("ZZFIELD2")
    private String zzfield2;

    @JsonProperty("ZZFIELD3")
    private String zzfield3;

    @JsonProperty("ZZFIELD4")
    private String zzfield4;

    @JsonProperty("ZZFIELD5")
    private String zzfield5;

    @JsonProperty("ZZFIELD6")
    private String zzfield6;

    @JsonProperty("ZZFIELD7")
    private String zzfield7;

    @JsonProperty("ZZFIELD8")
    private String zzfield8;

    @JsonProperty("ZZFIELD9")
    private String zzfield9;

    @JsonProperty("ZZFIELD0")
    private String zzfield0;

    @JsonProperty("WERKS")
    private String werks;

    @JsonProperty("BLDAT")
    private String bldat;

    @JsonProperty("BWART")
    private String bwart;

    @JsonProperty("LGORT")
    private String lgort;

    @JsonProperty("USNAM")
    private String usnam;

    @JsonProperty("BKTXT")
    private String bktxt;

    @JsonProperty("ZEILE")
    private String zeile;

    @JsonProperty("CHARG")
    private String charg;

    @JsonProperty("MEINS")
    private String meins;

    @JsonProperty("SGTXT")
    private String sgtxt;

    @JsonProperty("HDRIVER")
    private String hdriver;

    @JsonProperty("CARNO")
    private String carno;




    /*
    以下是用于中间过程数据保存
     */

    /**
     * 用于计算ZMENGE的数量修正，当ZRES2="+"时ZMENGE=MENGE，否则ZMENGE=MENGE*-1取负
     */
    @JSONField(serialize = false)
    private String zres2;

    @JSONField(serialize = false)
    private String matnr;

    @JSONField(serialize = false)
    private String mblnr;

    @JSONField(serialize = false)
    private String mjahr;

    /**
     * 用于SGI时使用
     */
    @JSONField(serialize = false)
    private String vbelnIm;

    @JSONField(serialize = false)
    private String vbelpIm;

    @JSONField(serialize = false)
    private String ebeln;

    @JSONField(serialize = false)
    private String ebelp;

    /**
     * 信息的时间戳（以matdoc时间为准）
     */
    @JSONField(serialize = false)
    private long timestamp;
}
